﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

#pragma once
#include "GmepBaseAlgorithm.h"

namespace gcmp
{
    class UniIdentity;
}

namespace gmep
{
    class GMEP_BASE_ALGORITHM_EXPORT GmepParameterUtils
    {
    public:

        /// \brief 判断构件参数是否可编辑
        /// 目前该函数仅支持判断设备零件类型和管件零件类型时，禁止用户修改
        /// 后续方案支持使用属性配置xml中属性判断可编辑后，不再使用这个方法判断
        /// \param parameterUid 参数的Uid 
        /// \return 可编辑返回true，否则返回false
        static bool IsParameterEditable(const gcmp::UniIdentity& parameterUid);

        /// \brief 判断构件参数是否可编辑
        ///目前该函数仅支持判断设备零件类型和管件零件类型时，禁止用户修改
        ///后续方案支持使用属性配置xml中属性判断可编辑后，不再使用这个方法判断
        /// \param parameterUidGuid 参数的Uid的guid字符串
        /// \return 可编辑返回true，否则返回false
        static bool IsParameterEditable(const std::wstring& parameterUidGuid);

        /// \brief 判断从string获取的guid对象是否有效
        /// \param guidString 要判断的guid字符串
        /// \param guid 返回的guid对象
        /// \return 有效返回true，否则返回false
        static bool IsGuidValidFromString(const std::wstring& guidString, GUID& guid);
    };
}